package main

import "fmt"

/**
	for 初始表达式; 条件表达式; 迭代因子
	for 的初始表达式 不能用var定义变量，可以用 := 定义变量

关键词：
	break: 跳出最近的循环
	continue: 跳出本次循环
	goto ：跳转到指定的行号
	return: 跳出当前函数
**/
func main() {
	test4()
}

func test1() {
	var sum int = 0
	for i := 0; i < 10; i++ {
		sum += i
	}
	fmt.Println(sum)
}

func test2() {
	var str string = "hello wold"
	for i, v := 0, str; i < len(v); i++ {
		fmt.Printf("%c \n", v[i])
	}

	// range 键值 关键字
	for i, value := range str {
		fmt.Printf("索引为：%d, 具体值为：%c \n", i, value)
	}
}

func test3() {
leble1:
	for i := 1; i < 5; i++ {
		for j := 2; j < 5; j++ {
			fmt.Printf("双循环 i: %v , j: %v \n", i, j)
			if i == 2 && j == 2 {
				break // 跳出最近循环
			}
			if i == 3 && j == 3 {
				break leble1 // 结束标签指定的循环
			}
		}
	}
}

func test4() {
	// 死循环
	var end int = 0
	for {
		end++
		if end > 12 {
			break
		}
		fmt.Println("死循环" + fmt.Sprintf("%d", end))
	}
}
